Peer-to-peer (P2P) systems employ a network of nodes that communicate with each other in a decentralized manner, e.g., without the aid of a central server. Each node (e.g., an application or a device) in the peer-to-peer network may communicate with another node on the network through a direct connection, or each node may communicate indirectly using an intermediary node to relay communications to an intended node. Peer-to-peer networks may be created using a p2p component, such as an application program interface (API), that provides basic peer-to-peer functionality, e.g., graph creation functions, network maintenance functions, message flooding, transport protocols, etc. Thus, an application using a peer-to-peer API may, for example, create a peer-to-peer network, connect to the P2P network, and communicate with other nodes in the network using the functions provided by the peer-to-peer API.
Applications using a peer-to-peer network may require replication services. For example, a meeting application for facilitating communications over a peer-to-peer network between participants may need to share files between the participants. Instead of creating a new file replication service, some operating systems contain a file replication services component which may be used to provide replication services to an application. However, the file replication services component may not be designed to work efficiently with an application running on a peer-to-peer schema. For example, some file replication services components may be designed to use a domain model to establish connections and provide security for replication members. Moreover, the existing file replication services components may not establish an efficient connection topology for use with a meeting application that performs other communication processes using a peer-to-peer network.